import HttpException from '../exceptions/HttpException';
import { Request, Response, NextFunction } from 'express';
// 这个http-status-code包就是通过字符串找状态码的。
import { INTERNAL_SERVER_ERROR } from 'http-status-codes';

// 用类来做类型，后面还需要把状态码和信息传给它然后new它。new HttpException()
// 然后src下建个middlewares文件夹，里面建errorMiddleware.ts：
// // 错误中间件需要上面一个中间件给next传一个参数。
// 不传参数则收不到err，所以上面一个中间件负责提供个状态码和信息。
const errorMiddleware = (
    error: HttpException,
    _req: Request,
    res: Response,
    _next: NextFunction
) => {
    res.status(error.status || INTERNAL_SERVER_ERROR).send({
        // res.status(error.status || INTERNAL_SERVER_ERROR).json({
        success: false,
        message: error.message,
        errors: error.errors
    })
}

export default errorMiddleware;


